package com.ithuang.quartz.task;

import java.io.File;

/**
 * ok
 * 输出目录
 */
public class Task4 {

    public static void main(String[] args) {
        // 指定要遍历的根目录
        String folderPath = "C:\\Users\\Administrator\\Documents\\jjjj - 副本";
        File rootFolder = new File(folderPath);

        // 输出树形结构
        System.out.println(rootFolder.getAbsolutePath());
        printNcFileTree(rootFolder, "", true);
    }

    /**
     * 递归遍历目录，输出树形结构（只输出 .nc 文件）
     *
     * @param folder  当前文件夹
     * @param prefix  前缀（用于缩进和连接符号）
     * @param isLast  是否是父文件夹的最后一个子项
     */
    public static void printNcFileTree(File folder, String prefix, boolean isLast) {
        // 打印当前文件夹的名称
        System.out.println(prefix + (isLast ? "└── " : "├── ") + folder.getName());

        if (folder.isDirectory()) {
            // 获取文件夹下的所有文件和文件夹
            File[] files = folder.listFiles();
            if (files != null) {
                // 遍历文件和子文件夹
                for (int i = 0; i < files.length; i++) {
                    boolean isLastChild = (i == files.length - 1);
                    if (files[i].isDirectory()) {
                        // 如果是文件夹，递归遍历
                        printNcFileTree(files[i], prefix + (isLast ? "    " : "│   "), isLastChild);
                    } else if (files[i].isFile() && files[i].getName().toLowerCase().endsWith(".nc")) {
                        // 如果是 .nc 文件，输出
                        System.out.println(prefix + (isLast ? "    " : "│   ") + (isLastChild ? "└── " : "├── ") + files[i].getName().replace("_正面", ""));
                    }
                }
            }
        }
    }

}
